//////////////////////////////////////////////

interface Definitions {
  [key: string]: Property
}

interface Property {
  properties: {
    [key: string]: Ref
  };
  required?: [];
  title: string;
  type: string;
  format?: string;
}

interface Ref {
  description?: string;
  format?: string;
  type?: string; // integer number string boolean object array file
  $ref?: string; // path, when type = null
  originalRef?: ''; // name, when type = null
  items?: Ref; // when type = array
}


interface Path {
  [key: string]: {}
}

interface Get {
  description?: string;
  operationId?: string;
  summary?: string;
  tags?: Array<string>;
  parameters?: Array<Params>;
  responses: {
    [key: number]: {}
  }
}

interface Params {
  description?: string;
  in?: string; // query, header, body, path, form
  name?: string;
  required?: boolean;
  type?: string; // string number integer boolean array object
  format?: string; // string(date, byte, binary...)
  schema?: {
    // when in = body,
    $ref?: string;
    originalRef?: '';
  }
}